package jcpcotizaciones.Control;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import jcpcotizaciones.Modelo.OrdenItem;


public class ControlOrdenProduccion_Item {
    private static List item;
    private static Connection con;

    public static void agregarOrden_Item (OrdenItem OI) throws SQLException, Exception{
            ManejadorBaseDatos mbd= ManejadorBaseDatos.getInstancia();
            mbd.conectar();
            con= mbd.getConexion();
            if (con == null ){
              throw new SQLException(" No hay conexion ");
            }

            PreparedStatement pst = null;
            try {
              pst = con.prepareStatement("Insert Into ordenproduccion_item values(?,?,?,?)");
              pst.setString(1,OI.getNumOrden());
              pst.setString(2,OI.getNumItem());
              pst.setString(3,OI.getFecha());
              pst.setString(4,OI.getHora());

              pst.executeUpdate();
            }finally {
                if (pst != null) {
                     pst.close();
                }
            }
        }

    public static void listarItem() throws SQLException, Exception {
     ResultSet rs = null;
     PreparedStatement pst = null;
     item = new LinkedList();
     try {
         ManejadorBaseDatos mbd=ManejadorBaseDatos.getInstancia();
         mbd.conectar();
         con=mbd.getConexion();
        pst = con.prepareStatement("select * from ordenproduccion_item ");
        rs = pst.executeQuery();
        while(rs.next()) {
           item.add(OrdenItem.load(rs));
        }
    } finally {
        if (rs != null) {
           rs.close();
       }
        if (pst != null) {
          pst.close();
       }
}
}

        public static void EliminarItemOrden (String num, String orden) throws SQLException, Exception{

     PreparedStatement pst = null;

     try {
        ManejadorBaseDatos mbd=ManejadorBaseDatos.getInstancia();
        mbd.conectar();
        con=mbd.getConexion();
        pst = con.prepareStatement("delete from ordenproduccion_item where orden_numero = ? and item_numero=?");
        pst.setString(1, orden);
        pst.setString(2, num);
        pst.executeUpdate();

     } finally {
        if (pst != null) {
           pst.close();
        }
     }

     }


    public static void EliminarTodoItem (String orden) throws SQLException, Exception{
        
     PreparedStatement pst = null;

     try {
        ManejadorBaseDatos mbd=ManejadorBaseDatos.getInstancia();
        mbd.conectar();
        con=mbd.getConexion();
        pst = con.prepareStatement("delete from ordenproduccion_item where orden_numero = ?");
        pst.setString(1, orden);

        pst.executeUpdate();

     } finally {
        if (pst != null) {
           pst.close();
        }
     }

     }

    public static OrdenItem BuscarItem(String numero) throws SQLException{
         ResultSet rs = null;
         PreparedStatement pst = null;
         OrdenItem i = null;
     try {
         ManejadorBaseDatos mbd=ManejadorBaseDatos.getInstancia();
         mbd.conectar();
         con=mbd.getConexion();
         pst = con.prepareStatement("select * from item where item_numero = ?");
         pst.setString(1, numero);

         rs = pst.executeQuery();
         while(rs.next()) {
             i = OrdenItem.load(rs);
         }
    } finally {
         if (rs != null) {
            rs.close();
         }
         if (pst != null) {
           pst.close();
         }
          return i;
    }
    }


     public static OrdenItem BuscarItemOrden (String numero) throws SQLException{
         ResultSet rs = null;
         PreparedStatement pst = null;
         OrdenItem i = null;
     try {
         ManejadorBaseDatos mbd=ManejadorBaseDatos.getInstancia();
         mbd.conectar();
         con=mbd.getConexion();
         pst = con.prepareStatement("select * from item where orden_numero = ?");
         pst.setString(1, numero);

         rs = pst.executeQuery();
         while(rs.next()) {
             i = OrdenItem.load(rs);
         }
    } finally {
         if (rs != null) {
            rs.close();
         }
         if (pst != null) {
           pst.close();
         }
          return i;
    }
    }
    /**
     * @return the item
     */
    public static List getItem() {
        return item;
    }

    /**
     * @param aItem the item to set
     */
    public static void setItem(List aItem) {
        item = aItem;
    }
}
